﻿using System.Collections.Generic;
using System.Security.Principal;
using DomainModel;

namespace Services.Concrete
{
    // класс, наследуемый IIdentity, для того, чтобы сохранять аккаунт в текущем контексте
    public class CustomIdentity : IIdentity
    {
        private readonly AccountEntry _accountEntry;

        public CustomIdentity(AccountEntry accountEntry, string name)
        {
            Name = name;
            _accountEntry = accountEntry;
        }

        public string Name { get; private set; }

        public string AuthenticationType
        {
            get { return "Custom"; }
        }

        public bool IsAuthenticated
        {
            get { return Id > 0; }
        }

        public long Id
        {
            get { return _accountEntry.Id; }
        }

        public Role Role
        {
            get { return _accountEntry.Role; }
        }

        public string[] GetRoles()
        {
            List<string> roles = new List<string>();
            roles.Add(Role.ToString());

            return roles.ToArray();
        }
    }
}